TeheMan X4 Editor 1.3
By PogChampGuy AKA Kuumba (https://www.twitch.tv/kuumba_)


/****************************************************
					CHANGE LOG						*
****************************************************/

	1.0
		1st version of the editor released on July 6th,2023.
	
	1.1
		Fixes + Undo as well as a few minor tools in the Sprite Tool.
		You can also view the collision by going into the screen tile flags window
		or via CTRL + C (oh and auto Text Editing Tool)
	1.1.1
		Important Fixes in Enemy Tab + Images (drag and drop to place enemy)
		
		
	1.2
		Super Important Fix for Exporting
		
		WARNING IF THE EDITOR CRASHES WHILE OPENING UP OR SWITCHING BETWEEN LEVELS
		replace SLUS_005.61 with an un-modified version , you will lose
		the data in the Layout , Background Camera (partly) and Enemy
		(if you didnt use the expansion) but the rest of your level data should be fine.
		
		Anyways this update adds a new tab (Anime Tab) it allows you to edit the 
		Clut Anime contained in each of the levels (not all levels have them)
		
	1.3
		This is probably gonna be to be last update in awhile since there's no more level
		data left to edit so Im actually gonna try to make a more decent readme this time.
		Anyways theres a lot of things that have been fixed from 1.2
		they include but are not limited to
		
		- Exporting/Saving stuff related to stage 0xB
		- minor fixes with the Anime Tab
		- a lot of other things but those were the important things
		
		Theres a bit more info but its gonna be later in the readme so just keep scrolling
		
	1.3.1
		Minor update allowing for 1x mode in the Sprite Arangment Editor
	
	1.3.2
		Minor  update fixing the redux web server
		
/****************************************************
					OPTIONS							*
****************************************************/
	You can change pretty much most of the base level data using
	the following tabs: Layout,Screen,16x16,CLUT,ENEMY,SPAWN,Background,Camera,Anime

	Layout:
		Tells the game what screens go where , move around via W,A,S,D (can edit size in Size window at the top).
		Keep in mind when you edit the sizes it will get rid of any undos.
		
		You can switch between different layers by hitting 1,2,3 on your keyboard
		or by clicking the buttons above the selected screen.
		
		If you right click you can select a screen for pasting.
		If you right click while holding shift it will select the screen in the screen tab.
		if you left click while holding shift instead of pasting normally its gonna
		bring up a window to manual  edit the screen Id.
		
		lastly you can also view all the screens in the current layer by clicking
		the View All Screens button
		
	Screen:
		Tells the game what 16x16 Tiles make up a screen.
		To help speed up editing you can grab a group of tiles on right and paste them
		into a screen. You can also grab a group of tiles from an existing screen and
		paste them to another screen. To This right click while holding shift then
		right click while holding shift to another part of the screen.
		Then again while holding shift left click on the area you want to paste your tiles.
		To reset it just select a tile normally.
		
		If you click on the flag icon in the bottom it while open the screen tile flags window.
		In here you can set witch tiles in the screen are transperant and there priority flag.
		Blue = Transperant
		Red  = Priority 
		
		You can also enable the collision viewer in this Window.
		
		I've also included a 8bpp Texture patch so that you can use 8bpp Textures
		in a similar sort of fashion to how MegaMan X5/X6 have 8bpp Textures.
		This patch also expands the max amount of colors to 256 * 32
		However I just did that make import X5/X6 levels easier since those games add more colors.
		Anyways you can find the patch over on my github: https://github.com/Kuumba123/MegaManX4_Texture8bpp
		If you want to use 8bpp textures just set the T-page property
		of a tile to 8-B. Make sure you you keep the Clut property a multiple of 0x10.
		To import a 8bpp texture just go to the Texture Tools and click the Replace Textures
		button . Once you select the ARC file with the textures and then just swap
		the bit depth by right clicking on the texture.
		
		Lastly and probably not gonna be very used is the tilesets features.
		Basicly when ever MegaMan X4 wants modify a set of tiles in a screen
		its gonna call the function at $800dabe4 or $800da984.
		the parameters are the following
		
		LoadTiles(uint tilesetId, ushort destX, ushort destY);
		
		The destX and destY allow you to basicly use the same tileset but load them in different
		locations on the map (mainly used for the ice blocks and creates).
		Given thsoe parameters the game is gonna load a set of tiles in into the given the 
		arugments. Now sadly there's no real why to have any sort of graphics or anything in
		the editor but what I did add is a way select a group of tiles in screen 
		(shift + right click) and then export it as a C file.
		The pointers for each of the levels tilesets pointers are located at $80119388.
		
		So basicly select a group of tiles in a screen when click the Tilesets button
		in the Screen Tiles Window then set the base X , baseY , Layer and a Base Name
		then just export.
		
		I did make video explaining how write C code for existing 
		PS1 Games: https://www.youtube.com/watch?v=L_gMfNuG-_U
		
	16x16:
		A tab specficly to make changing the T-Page for 16x16 Tiles easier.
		You can also import and export some of level data as BIN files to backup
		or copy level data , this is pretty handy since the 1st half of stage 0xB
		use a different file for X/Zero but the layout and enemy data is the same
		(keep in mind if you are using the expand enemy patch you )

	CLUT:
		Edit the colors for the Background and the Objects (X and Zero have dependent files).
		You can also import colors from a Gimp Text file and a YYCHR Pal file by clicking the gear
		
	Enemy:
		Change what Enemies go where , each 1st + 2nd has its own limit.
		However I do have a patch to get around that (click the tools button).
		So most things are pretty self simple but I will go over some
		important things to keep in mind while editing this tab (and kinda also the layout tab).
		
		If you look to the right you can see most of the Enemies , all you need to do
		from here is just drag and drop to place an enemy.
		
		If your editing the layout data the 1st level that shares stage Id's with other level files
		is gonna be the first (this applys to stage 0xB and the 1st and 2nd half of 0xD).
		
		Now if your editing the enemy data the last level that shares stage Id's with other level files
		is going to be the one that gets saved.
		However the only stage that does this is stage 0xB and its only the 1st half.
		So anyways unless you have the enemy patch enabled you need to keep in mind to only
		edit zero's version of that level and not X's.
		
		To make edit enemy data in both versions stage 0xB simpler (and I guess as a nice backup)
		you can import and export enemy data from json files . So once your done editing
		the level data for zero's version of stage 0xB just export it as a json file then
		switch over to  x's version of the level.
		
		In the Enemy Tools Window you can also set the start enemy of each level.
		Most of the time you really just need to set the  Clut Anime objects
		witch is Id: 3 Type: 3.
		
	Spawn:
		Edit some of the checkpoint info ex:  Cam borders , MegaMan X & Y and more.
		Most things are pretty simple but will mention a few less obvious parameters.
		
		Cam BD-L: Left side border (Camera-X cant be less than this value)
		Cam BD-R: same thing but right side (Camera-X cant be greater than this value)
		Cam BD-T: same thing , (Camera-Y cant be less than this value)
		Cam BD-B: same thing , (Camera-Y cant be greater than this value)
		
		BaseX-3 and all the other ones are specfic to background scroll types.
		I have figured out what all of them are so your gonna have to mess with that your self.
		
		Collision Timer: 
			basicly Mega-X & Y are not the exact locations megaman/zero is gonna land
			in the level. The game checks for the floors to see where megaman is gonna land
			however to avoid getting stuck in floors and ceilings the game has a count down
			then it will start check for collision.
		
		Special  Spawn is for the following stages:
			- Stage 3 (Split Mushroom)
			- Stage 6 (1st half of Peacocks stage)
			- Stage C (refights)
		Basicly just set the Y position and go to the right Id + Table so
		you directly set where megaman spawns for those levels.
		
		if you click on the gear icon it will allow you to extract the checkpoints
		from the game so you can edit the amount per level. Doing this will require an
		un-modified PSX.EXE of the game. Once you extract them re-open your game files
		then hit save. Doing this will also create a new folder called CHECKPOINT
		so that the editor can keep track of how many checkpoints are in each level
		
		anyways if you click the goto checkpoint button it will bring you to that checkpoint
		(make sure you have redux setup) it will also do pretty much the same thing
		the reload button does on but only for the spawn & background tab
		
	Background:
		Set the type of scrolling of each layer as well as object slots.
		There are 4 (0-3) object priority slots and you edit and each layer
		has there own priority for regular tiles and the priority tiles.
		
		Keep in mind  this is a reverse order table so 
		lower number = higher priority.
		
		Trans Type basicly refers to witch of the 4(0-3) Transperant Types
		Im not really gonna explain it here but go look at the some of these
		no$psx docs to understand how the Transperancy is calculated
		http://problemkaputt.de/psx-spx.htm#gpurenderingattributes
		
	Camera:
		Set the Camera Trigger locations as well as edit the border settings.
		If you noticed there are these green boxes in the levels those are the
		camera triggers. So basicly if the X or Zero is inside the area the
		game is gonna look at the border Ids for the specfic trigger and use
		it to go know what border settings to look up so it can change the camera properties.
		
		For example if Trigger Setting-2's Border Id Table says 14 and 5
		the game is gonna go to the Border Setting and look up specficly
		setting 14 and 5 so that it knows what properties to modify.
		
		Keep in mind the Border Settings are not per level and they will not be
		extracted if you use click the gear button to extract them (same process as with checks).
		
		Lastly if you want to edit the Camera Trigger Area (the green box in the Enemy tab)
		you can just enable the Trigger Select then in the Enemy Tab
		Click in and hold the area in the level you want the Camera Trigger to be
		(kinda like your selecting a group of files on the Windows Desktop).
		Make sure you place Effect Object 0 (type 3) clsoe to the trigger.
		If you dont place that object the trigger will NEVER happen
		
	Anime:
		Edit the Clut Animes in each of the levels.
		Everything is pretty simple just keep in mind  that if the 
		Timer Value is less than 0 (its being shown as hex but treat it as signed) 
		it means to be go back that amount of frames.
		
		Same tools from Clut Tab are also in this Tab. You can also copy and paste
		sets via CTRL+C and CTRL+V on top of adding extra sets.
		
		Lastly the Dest-Set Value is an extract set index , so if you want
		to have an clut anime for the background layers add 40 to the
		value you want

/****************************************************
					Tools							*
****************************************************/
	Just as a Heads up nothing in this Tab is connected to the rest of the editor.
	Keep that in mind your editing levels while using these tools.

Texture Tools:
	Some simple tools for extracting textures and replacing existing textures.
	
	For extracting just go into the ARC folder and select
	every file in the folder. then select the dest location.
	You can also pick between BMP files and BIN files.
	
	Replacing is also pretty simple.
	Click the format you want to replace with (BIN or BMP).
	Select the ARC file you want to edit the textures with then you should
	see the window showing the textures. From there you can left click to  replace
	the texture. If you see the texture after selecting your BMP or BIN file
	that means that everything is saved and you can close the window.
	Also If you are using the 8bpp Texture Patch you can swap the bit-depth
	by right clicking on the texture. If your using an 8bpp Texture 
	the width of your BMP file has to be 128 if its 4bpp 256.
	
Sound Tools:
	Pretty simple stuff for the most part. If your unaware VAB files are
	Sony's offical format for Sound Banks for PS1 games. So if you have
	the PS1 SDK called PSYQ you can replace VAB files in the game.
	
	Same as before just go to the arc folder and select all the files in the folder
	for extracting.
	
	To replace VAB files just locate the ARC file with VAB file you want to edit
	then go to witch of the VAB files you want to edit.
	
ISO 9960 Tools:
	Just some general puprose ISO 9660 tools.
	
	Extract ISO 9660 just grabs all the files in PS1 .BIN file containing the file system.
	
	Replace File is quick and simple way of writting to files in existing PS1 games.
	there are some limitations due to the fact that most files are one after the other.
	I would recommend learning how to use MKPSXISO.EXE (boring program name)
	you can get it here in the releases section:
	https://github.com/Lameguy64/mkpsxiso
	
	Fix MMX4 PSX LBA Table is meant to be used with MKPSXISO.EXE.
	The game doesnt use any of the higher level CD related functions for looking up files
	instead the game has a LBA table that lets the game know where the files are located on
	the disc. So basicly if you change the size of the game files you need to fix this table.
	Anyways Im not gonna explain every part about MKPSXISO.EXE (Super boring name)
	but I will explain how to use to put everything back in the game.
	
	1. 	Get MKPSXISO.EXE and put it with all your other game files
		(or your envirmeant variables)
	2.	Make 2 Windows batch files in the same folder as your game files or use cmd.
		The first file should contain the following:
		
			mkpsxiso.exe MMX4.xml -noisogen -lbahead LBA.H
			
		The 2nd file should contain the following:
		
			mkpsxiso.exe MMX4.xml -y
	
	3. 	Make the XML file , I will put an example XML file in the very
		bottom of this readme but just make sure you name it MMX4.xml
		(assuming your not gonna change the Batch files from earlier)
	4.
		run the first batch file witch I normally call MK_LBA.BAT.
		you should see a new C header file in the same folder as your game files
	5.
		Open the editor backup and go to the Fix MMX4 PSX.EXE LBA Button in Tools.
		Click the button and select the PSX.EXE (SLUS_005.61) then the C Header file.
		That should fix the LBA table thats in the game
	6.
		Use the 2nd batch file if everything goes well you should  see
		Windows cmd pop up with the progress of the disc being rebuilt
	7.
		Done !!!
		if everything worked you should see  new BIN + CUE file.
		

Other Tools:
	some other tools that I couldn't really categorize.
	
	Its kinda hard to really explain how/what Sprite Tools 
	is used for unless you just watch the video (https://www.youtube.com/watch?v=ON2RwRb-smI)
	but in each level to save CPU RAM + Speed-Up loads
	the game ony keeps the required SPRT Frames
	(the info that tells the game how to peace the textures into something lookable)
	and just keeps copying them across the all the other stages. This tool can extract
	and re-add in that SPRT data so that you don't get a glitchy mess when 
	
	Game Settings contains very basic parameters you can edit in game.
	Right now there's not a lot but more might be added in the feature.
	Probably the main game setting you would want to edit here is the 
	Song Length. So if you have the SDK and you wanna edit the length of each
	song just edit them in here (its in sectors so file-length divided by 920hex)
	
	Edit Player Text Data allows you to edit you guessed it the Text for X and Zero.
	Just select the player file (PL00_U.ARC/PL01_U.ARC/PL02_U.ARC) then get to editing.
	Pretty simple tool for the most part just keep in mind that you need to pay attention
	to the flags (especally the end flag). If you want to trim off some text boxes
	just make sure you enable the end flag before the text box you wanna end at
	then click Export to Arc. Theres also an auto editing feature so instead of
	click on each Char you can just type out a string and it will convert it
	to the format the game uses.

	The Create New ARC and Edit Existing ARC are mainly just for me to debug stuff.
	If you understand the games file format then they might be useful to you.


/****************************************************
		Real Time Level Editing + Other Stuff		*
****************************************************/

Now I didnt really know where to put this but lets over some other things in this editor.

If you have PCSX Redux (https://github.com/grumpycoders/pcsx-redux) you can
send the level to Redux and test out your levels and stuff.

To set it up in Redux's Configuration scroll down til you see "Enable Web Server".
Now unless you wanna mess around with the Port Settings thats all you should need to do on Redux.

Inside the editor just hit the Reload button at the top (CTRL + R)
then you can watch the magic happen!

There are some things to keep in mind when it comes to real time level editing.

	1. 	Make sure you have Redux booted up and your in the right level
	2.	Make sure you have the right player selected and if your using
		X with the Ultimate Armor go into settings and check mark the 
		Use Ultimate Armor File for Reload
	3. 	If you edit stuff in the Size Window (other than the layout size)
		that will change the addresses of most of the level data.
		This is the same case if you edit the Player File or mess around with the
		Sprite Data in the levels and adding extra Clut Anime Sets.
		So you would need rebuild the disc in order to keep using the Reload function.
		
The editor also has a full screen mode via F11. If its not being displayed properly
go into the Settings and edit the referance width. Normally putting in the width of
your main display should fix the issue but just mess around with this value until
every displays correctly. You can also drag out each of the Tabs (Layou,Screen,Enemy etc)
and move them to seperate Windows as well as dock them to existing windows
(still haven't figured out a good way of saving the docking but everything else should save).
		
Lastly you probably already noticed this but I bundled in one of my PCSX Redux Lua scripts.
pretty helpful for the effect objects since thoes are normally not visable.
To load the script open the lua console and type: dofile('mmx4_tools.lua')
assuming you putted the script in the same folder as PCSX Redux it will load the lua script
and you should see some more imgui windows pop with various debugging featues.
If you wanna disable/unload the script just type: mmx4.unload()

/****************************************************
					MMX4.XML						*
****************************************************/
	
<iso_project image_name="MK_MMX4.bin" cue_sheet="MK_MMX4.cue">
    <track type="data">
        <identifiers system="PLAYSTATION" application="PLAYSTATION" volume="MEGAMAN_X4" publisher="CAPCOM CO.,LTD." data_preparer="CAPCOM CO.,LTD." creation_date="1997082000000000+36"/>
        <default_attributes gmt_offs="36" xa_attrib="16" xa_perm="1365" xa_gid="0" xa_uid="0"/>
        <directory_tree>
            <dir name="ARC" source="ARC">
                <file name="CAPCOM.ARC" source="ARC/CAPCOM.ARC" type="data"/>
                <file name="COL00_0X.ARC" source="ARC/COL00_0X.ARC" type="data"/>
                <file name="COL00_0Z.ARC" source="ARC/COL00_0Z.ARC" type="data"/>
                <file name="COL00_1X.ARC" source="ARC/COL00_1X.ARC" type="data"/>
                <file name="COL00_1Z.ARC" source="ARC/COL00_1Z.ARC" type="data"/>
                <file name="COL01_0X.ARC" source="ARC/COL01_0X.ARC" type="data"/>
                <file name="COL01_0Z.ARC" source="ARC/COL01_0Z.ARC" type="data"/>
                <file name="COL01_1X.ARC" source="ARC/COL01_1X.ARC" type="data"/>
                <file name="COL01_1Z.ARC" source="ARC/COL01_1Z.ARC" type="data"/>
                <file name="COL02_0X.ARC" source="ARC/COL02_0X.ARC" type="data"/>
                <file name="COL02_0Z.ARC" source="ARC/COL02_0Z.ARC" type="data"/>
                <file name="COL02_1X.ARC" source="ARC/COL02_1X.ARC" type="data"/>
                <file name="COL02_1Z.ARC" source="ARC/COL02_1Z.ARC" type="data"/>
                <file name="COL03_0X.ARC" source="ARC/COL03_0X.ARC" type="data"/>
                <file name="COL03_0Z.ARC" source="ARC/COL03_0Z.ARC" type="data"/>
                <file name="COL03_1X.ARC" source="ARC/COL03_1X.ARC" type="data"/>
                <file name="COL03_1Z.ARC" source="ARC/COL03_1Z.ARC" type="data"/>
                <file name="COL04_0X.ARC" source="ARC/COL04_0X.ARC" type="data"/>
                <file name="COL04_0Z.ARC" source="ARC/COL04_0Z.ARC" type="data"/>
                <file name="COL04_1X.ARC" source="ARC/COL04_1X.ARC" type="data"/>
                <file name="COL04_1Z.ARC" source="ARC/COL04_1Z.ARC" type="data"/>
                <file name="COL05_0X.ARC" source="ARC/COL05_0X.ARC" type="data"/>
                <file name="COL05_0Z.ARC" source="ARC/COL05_0Z.ARC" type="data"/>
                <file name="COL05_1X.ARC" source="ARC/COL05_1X.ARC" type="data"/>
                <file name="COL05_1Z.ARC" source="ARC/COL05_1Z.ARC" type="data"/>
                <file name="COL06_0X.ARC" source="ARC/COL06_0X.ARC" type="data"/>
                <file name="COL06_0Z.ARC" source="ARC/COL06_0Z.ARC" type="data"/>
                <file name="COL06_1X.ARC" source="ARC/COL06_1X.ARC" type="data"/>
                <file name="COL06_1Z.ARC" source="ARC/COL06_1Z.ARC" type="data"/>
                <file name="COL07_0X.ARC" source="ARC/COL07_0X.ARC" type="data"/>
                <file name="COL07_0Z.ARC" source="ARC/COL07_0Z.ARC" type="data"/>
                <file name="COL07_1X.ARC" source="ARC/COL07_1X.ARC" type="data"/>
                <file name="COL07_1Z.ARC" source="ARC/COL07_1Z.ARC" type="data"/>
                <file name="COL08_0X.ARC" source="ARC/COL08_0X.ARC" type="data"/>
                <file name="COL08_0Z.ARC" source="ARC/COL08_0Z.ARC" type="data"/>
                <file name="COL08_1X.ARC" source="ARC/COL08_1X.ARC" type="data"/>
                <file name="COL08_1Z.ARC" source="ARC/COL08_1Z.ARC" type="data"/>
                <file name="COL09_0X.ARC" source="ARC/COL09_0X.ARC" type="data"/>
                <file name="COL09_0Z.ARC" source="ARC/COL09_0Z.ARC" type="data"/>
                <file name="COL0A_0X.ARC" source="ARC/COL0A_0X.ARC" type="data"/>
                <file name="COL0A_0Z.ARC" source="ARC/COL0A_0Z.ARC" type="data"/>
                <file name="COL0B_0X.ARC" source="ARC/COL0B_0X.ARC" type="data"/>
                <file name="COL0B_0Z.ARC" source="ARC/COL0B_0Z.ARC" type="data"/>
                <file name="COL0B_1X.ARC" source="ARC/COL0B_1X.ARC" type="data"/>
                <file name="COL0B_1Z.ARC" source="ARC/COL0B_1Z.ARC" type="data"/>
                <file name="COL0C_0X.ARC" source="ARC/COL0C_0X.ARC" type="data"/>
                <file name="COL0C_0Z.ARC" source="ARC/COL0C_0Z.ARC" type="data"/>
                <file name="COL0C_1X.ARC" source="ARC/COL0C_1X.ARC" type="data"/>
                <file name="COL0C_1Z.ARC" source="ARC/COL0C_1Z.ARC" type="data"/>
                <file name="COL0D_0X.ARC" source="ARC/COL0D_0X.ARC" type="data"/>
                <file name="COL0D_0Z.ARC" source="ARC/COL0D_0Z.ARC" type="data"/>
                <file name="COL0E_U0.ARC" source="ARC/COL0E_U0.ARC" type="data"/>
                <file name="COL0E_U1.ARC" source="ARC/COL0E_U1.ARC" type="data"/>
                <file name="COL0F_U0.ARC" source="ARC/COL0F_U0.ARC" type="data"/>
                <file name="COL0F_U1.ARC" source="ARC/COL0F_U1.ARC" type="data"/>
                <file name="COLD_1U1.ARC" source="ARC/COLD_1U1.ARC" type="data"/>
                <file name="COLD_1U2.ARC" source="ARC/COLD_1U2.ARC" type="data"/>
                <file name="COLD_1U3.ARC" source="ARC/COLD_1U3.ARC" type="data"/>
                <file name="COLD_1U4.ARC" source="ARC/COLD_1U4.ARC" type="data"/>
                <file name="COLD_1U5.ARC" source="ARC/COLD_1U5.ARC" type="data"/>
                <file name="COLD_1U6.ARC" source="ARC/COLD_1U6.ARC" type="data"/>
                <file name="COLD_1U7.ARC" source="ARC/COLD_1U7.ARC" type="data"/>
                <file name="COLD_1U8.ARC" source="ARC/COLD_1U8.ARC" type="data"/>
                <file name="FONT8X8.ARC" source="ARC/FONT8X8.ARC" type="data"/>
                <file name="LOAD_U.ARC" source="ARC/LOAD_U.ARC" type="data"/>
                <file name="MOJIPAT.ARC" source="ARC/MOJIPAT.ARC" type="data"/>
                <file name="ONPARE1.ARC" source="ARC/ONPARE1.ARC" type="data"/>
                <file name="ONPARE2.ARC" source="ARC/ONPARE2.ARC" type="data"/>
                <file name="ONPARE3.ARC" source="ARC/ONPARE3.ARC" type="data"/>
                <file name="ONPARE4.ARC" source="ARC/ONPARE4.ARC" type="data"/>
                <file name="ONPARE5.ARC" source="ARC/ONPARE5.ARC" type="data"/>
                <file name="ONPARE6.ARC" source="ARC/ONPARE6.ARC" type="data"/>
                <file name="ONPARE7.ARC" source="ARC/ONPARE7.ARC" type="data"/>
                <file name="ONPARE8.ARC" source="ARC/ONPARE8.ARC" type="data"/>
                <file name="PL00SEP.ARC" source="ARC/PL00SEP.ARC" type="data"/>
                <file name="PL00_U.ARC" source="ARC/PL00_U.ARC" type="data"/>
                <file name="PL01SEP.ARC" source="ARC/PL01SEP.ARC" type="data"/>
                <file name="PL01_U.ARC" source="ARC/PL01_U.ARC" type="data"/>
                <file name="PL02_U.ARC" source="ARC/PL02_U.ARC" type="data"/>
                <file name="PLDEMO.ARC" source="ARC/PLDEMO.ARC" type="data"/>
                <file name="PLDEMO00.ARC" source="ARC/PLDEMO00.ARC" type="data"/>
                <file name="PLDEMO01.ARC" source="ARC/PLDEMO01.ARC" type="data"/>
                <file name="PLDEMO02.ARC" source="ARC/PLDEMO02.ARC" type="data"/>
                <file name="PLDEMO03.ARC" source="ARC/PLDEMO03.ARC" type="data"/>
                <file name="ST00_00.ARC" source="ARC/ST00_00.ARC" type="data"/>
                <file name="ST00_01.ARC" source="ARC/ST00_01.ARC" type="data"/>
                <file name="ST01_00.ARC" source="ARC/ST01_00.ARC" type="data"/>
                <file name="ST01_01.ARC" source="ARC/ST01_01.ARC" type="data"/>
                <file name="ST02_00.ARC" source="ARC/ST02_00.ARC" type="data"/>
                <file name="ST02_01.ARC" source="ARC/ST02_01.ARC" type="data"/>
                <file name="ST03_00.ARC" source="ARC/ST03_00.ARC" type="data"/>
                <file name="ST03_01.ARC" source="ARC/ST03_01.ARC" type="data"/>
                <file name="ST04_00.ARC" source="ARC/ST04_00.ARC" type="data"/>
                <file name="ST04_01.ARC" source="ARC/ST04_01.ARC" type="data"/>
                <file name="ST05_00.ARC" source="ARC/ST05_00.ARC" type="data"/>
                <file name="ST05_01.ARC" source="ARC/ST05_01.ARC" type="data"/>
                <file name="ST06_00.ARC" source="ARC/ST06_00.ARC" type="data"/>
                <file name="ST06_01.ARC" source="ARC/ST06_01.ARC" type="data"/>
                <file name="ST07_00.ARC" source="ARC/ST07_00.ARC" type="data"/>
                <file name="ST07_01.ARC" source="ARC/ST07_01.ARC" type="data"/>
                <file name="ST08_00.ARC" source="ARC/ST08_00.ARC" type="data"/>
                <file name="ST08_01.ARC" source="ARC/ST08_01.ARC" type="data"/>
                <file name="ST09_00.ARC" source="ARC/ST09_00.ARC" type="data"/>
                <file name="ST0A_00.ARC" source="ARC/ST0A_00.ARC" type="data"/>
                <file name="ST0B_00.ARC" source="ARC/ST0B_00.ARC" type="data"/>
                <file name="ST0B_01.ARC" source="ARC/ST0B_01.ARC" type="data"/>
                <file name="ST0B_0X.ARC" source="ARC/ST0B_0X.ARC" type="data"/>
                <file name="ST0B_0Z.ARC" source="ARC/ST0B_0Z.ARC" type="data"/>
                <file name="ST0C_00.ARC" source="ARC/ST0C_00.ARC" type="data"/>
                <file name="ST0C_01.ARC" source="ARC/ST0C_01.ARC" type="data"/>
                <file name="ST0C_U1.ARC" source="ARC/ST0C_U1.ARC" type="data"/>
                <file name="ST0D_0X.ARC" source="ARC/ST0D_0X.ARC" type="data"/>
                <file name="ST0D_0Z.ARC" source="ARC/ST0D_0Z.ARC" type="data"/>
                <file name="ST0E_U0.ARC" source="ARC/ST0E_U0.ARC" type="data"/>
                <file name="ST0E_U1.ARC" source="ARC/ST0E_U1.ARC" type="data"/>
                <file name="ST0F_U1.ARC" source="ARC/ST0F_U1.ARC" type="data"/>
                <file name="ST0F_UX.ARC" source="ARC/ST0F_UX.ARC" type="data"/>
                <file name="ST0F_UZ.ARC" source="ARC/ST0F_UZ.ARC" type="data"/>
                <file name="ST0_1_1.ARC" source="ARC/ST0_1_1.ARC" type="data"/>
                <file name="ST1_1_1.ARC" source="ARC/ST1_1_1.ARC" type="data"/>
                <file name="ST2_1_1.ARC" source="ARC/ST2_1_1.ARC" type="data"/>
                <file name="ST3_1_1.ARC" source="ARC/ST3_1_1.ARC" type="data"/>
                <file name="ST4_1_1.ARC" source="ARC/ST4_1_1.ARC" type="data"/>
                <file name="ST5_1_1.ARC" source="ARC/ST5_1_1.ARC" type="data"/>
                <file name="ST6_1_1.ARC" source="ARC/ST6_1_1.ARC" type="data"/>
                <file name="ST7_1_1.ARC" source="ARC/ST7_1_1.ARC" type="data"/>
                <file name="ST8_1_1.ARC" source="ARC/ST8_1_1.ARC" type="data"/>
                <file name="STA_0_1.ARC" source="ARC/STA_0_1.ARC" type="data"/>
                <file name="STB_1_1.ARC" source="ARC/STB_1_1.ARC" type="data"/>
                <file name="STC_1_1.ARC" source="ARC/STC_1_1.ARC" type="data"/>
                <file name="STD_1_1U.ARC" source="ARC/STD_1_1U.ARC" type="data"/>
                <file name="STD_1_2U.ARC" source="ARC/STD_1_2U.ARC" type="data"/>
                <file name="STD_1_3U.ARC" source="ARC/STD_1_3U.ARC" type="data"/>
                <file name="STD_1_4U.ARC" source="ARC/STD_1_4U.ARC" type="data"/>
                <file name="STD_1_5U.ARC" source="ARC/STD_1_5U.ARC" type="data"/>
                <file name="STD_1_6U.ARC" source="ARC/STD_1_6U.ARC" type="data"/>
                <file name="STD_1_7U.ARC" source="ARC/STD_1_7U.ARC" type="data"/>
                <file name="STD_1_8U.ARC" source="ARC/STD_1_8U.ARC" type="data"/>
            </dir>
            <dir name="STR" source="STR">
                <file name="CAPCOM20.STR" source="STR/CAPCOM20.STR" type="mixed" xa_attrib="32"/>
                <file name="OP_U.STR" source="STR/OP_U.STR" type="mixed" xa_attrib="32"/>
                <file name="X1_U.STR" source="STR/X1_U.STR" type="mixed" xa_attrib="32"/>
                <file name="X2_U.STR" source="STR/X2_U.STR" type="mixed" xa_attrib="32"/>
                <file name="X3_U.STR" source="STR/X3_U.STR" type="mixed" xa_attrib="32"/>
                <file name="X4_U.STR" source="STR/X4_U.STR" type="mixed" xa_attrib="32"/>
                <file name="Z1_U.STR" source="STR/Z1_U.STR" type="mixed" xa_attrib="32"/>
                <file name="Z2_U.STR" source="STR/Z2_U.STR" type="mixed" xa_attrib="32"/>
                <file name="Z3_U.STR" source="STR/Z3_U.STR" type="mixed" xa_attrib="32"/>
                <file name="Z4_U.STR" source="STR/Z4_U.STR" type="mixed" xa_attrib="32"/>
                <file name="Z5_U.STR" source="STR/Z5_U.STR" type="mixed" xa_attrib="32"/>
            </dir>
            <dir name="XA" source="XA">
                <file name="BGM1_U.XA" source="XA/BGM1_U.XA" type="mixed"/>
                <file name="BGM2.XA" source="XA/BGM2.XA" type="mixed"/>
                <file name="BGM3.XA" source="XA/BGM3.XA" type="mixed"/>
                <file name="BGM4.XA" source="XA/BGM4.XA" type="mixed"/>
                <file name="BGM5_U.XA" source="XA/BGM5_U.XA" type="mixed"/>
                <file name="BOSINT_U.XA" source="XA/BOSINT_U.XA" type="mixed"/>
                <file name="VOICE1_U.XA" source="XA/VOICE1_U.XA" type="mixed"/>
                <file name="VOICE2_U.XA" source="XA/VOICE2_U.XA" type="mixed"/>
                <file name="VOICE3_U.XA" source="XA/VOICE3_U.XA" type="mixed"/>
                <file name="VOICE4_U.XA" source="XA/VOICE4_U.XA" type="mixed"/>
                <file name="VOICE5_U.XA" source="XA/VOICE5_U.XA" type="mixed"/>
            </dir>
            <file name="SYSTEM.CNF" source="SYSTEM.CNF" type="data"/>
            <file name="SLUS_005.61" source="SLUS_005.61" type="data"/>
            <file name="ZNULL.DAT" source="ZNULL.DAT" type="data"/>
        </directory_tree>
    </track>
</iso_project>

